/**
 * Generate code from /{{projectName}}-core/src/main/java/{{packageName}}/{{apis}}/dto/{{apiDtos@DEFAULT}}.java.hbs
 */
package cn.ibizlab.api.dto;

import java.util.*;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.alibaba.fastjson.annotation.JSONField;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import cn.ibizlab.util.domain.DTOBase;
import cn.ibizlab.util.domain.DTOClient;
import lombok.*;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 人员[SysPersonRequestDTO]
 *
 * @author generator
 */
@Getter
@Setter
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("人员DTO")
public class SysPersonRequestDTO extends DTOBase implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 组织机构标识
     */
    @JsonProperty("organization_id")
    @JSONField(name = "organization_id")
    @ApiModelProperty(value = "组织机构标识", position = 0)
    private String organizationId;

    /**
     * 标识
     */
    @JsonProperty("id")
    @JSONField(name = "id")
    @ApiModelProperty(value = "标识", position = 1)
    private String id;

    /**
     * uid/loginname
     */
    @JsonProperty("uid")
    @JSONField(name = "uid")
    @ApiModelProperty(value = "uid/loginname", position = 2)
    private String uid;

    /**
     * 名称
     */
    @JsonProperty("display_name")
    @JSONField(name = "display_name")
    @ApiModelProperty(value = "名称", position = 3)
    private String displayName;

    /**
     * 人员编号
     */
    @JsonProperty("employee_number")
    @JSONField(name = "employee_number")
    @ApiModelProperty(value = "人员编号", position = 4)
    private String employeeNumber;

    /**
     * 证件号
     */
    @JsonProperty("identification_number")
    @JSONField(name = "identification_number")
    @ApiModelProperty(value = "证件号", position = 5)
    private String identificationNumber;

    /**
     * 部门辅助查询
     */
    @JsonProperty("department_id")
    @JSONField(name = "department_id")
    @ApiModelProperty(value = "部门辅助查询", position = 6)
    private String departmentId;

    /**
     * 用户组查询辅助属性
     */
    @JsonProperty("organizational_role_id")
    @JSONField(name = "organizational_role_id")
    @ApiModelProperty(value = "用户组查询辅助属性", position = 7)
    private String organizationalRoleId;

    /**
     * DC
     */
    @JsonProperty("dc")
    @JSONField(name = "dc")
    @ApiModelProperty(value = "DC", position = 8)
    private String dc;

    /**
     * 状态
     */
    @JsonProperty("status")
    @JSONField(name = "status")
    @ApiModelProperty(value = "状态", position = 9)
    private String status;

    /**
     * 头像
     */
    @JsonProperty("avatar")
    @JSONField(name = "avatar")
    @ApiModelProperty(value = "头像", position = 10)
    private String avatar;

    /**
     * 主部门标识
     */
    @JsonProperty("mdepartment_id")
    @JSONField(name = "mdepartment_id")
    @ApiModelProperty(value = "主部门标识", position = 11)
    private String mdepartmentId;

    /**
     * 主部门
     */
    @JsonProperty("mdepartment_name")
    @JSONField(name = "mdepartment_name")
    @ApiModelProperty(value = "主部门", position = 12)
    private String mdepartmentName;


    /**
     * 设置 [组织机构标识]
     */
    public SysPersonRequestDTO setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
        this.modify("organization_id", organizationId);
        return this;
    }

    /**
     * 设置 [uid/loginname]
     */
    public SysPersonRequestDTO setUid(String uid) {
        this.uid = uid;
        this.modify("uid", uid);
        return this;
    }

    /**
     * 设置 [名称]
     */
    public SysPersonRequestDTO setDisplayName(String displayName) {
        this.displayName = displayName;
        this.modify("display_name", displayName);
        return this;
    }

    /**
     * 设置 [人员编号]
     */
    public SysPersonRequestDTO setEmployeeNumber(String employeeNumber) {
        this.employeeNumber = employeeNumber;
        this.modify("employee_number", employeeNumber);
        return this;
    }

    /**
     * 设置 [证件号]
     */
    public SysPersonRequestDTO setIdentificationNumber(String identificationNumber) {
        this.identificationNumber = identificationNumber;
        this.modify("identification_number", identificationNumber);
        return this;
    }

    /**
     * 设置 [部门辅助查询]
     */
    public SysPersonRequestDTO setDepartmentId(String departmentId) {
        this.departmentId = departmentId;
        this.modify("department_id", departmentId);
        return this;
    }

    /**
     * 设置 [用户组查询辅助属性]
     */
    public SysPersonRequestDTO setOrganizationalRoleId(String organizationalRoleId) {
        this.organizationalRoleId = organizationalRoleId;
        this.modify("organizational_role_id", organizationalRoleId);
        return this;
    }

    /**
     * 设置 [DC]
     */
    public SysPersonRequestDTO setDc(String dc) {
        this.dc = dc;
        this.modify("dc", dc);
        return this;
    }

    /**
     * 设置 [状态]
     */
    public SysPersonRequestDTO setStatus(String status) {
        this.status = status;
        this.modify("status", status);
        return this;
    }

    /**
     * 设置 [头像]
     */
    public SysPersonRequestDTO setAvatar(String avatar) {
        this.avatar = avatar;
        this.modify("avatar", avatar);
        return this;
    }

    /**
     * 设置 [主部门标识]
     */
    public SysPersonRequestDTO setMdepartmentId(String mdepartmentId) {
        this.mdepartmentId = mdepartmentId;
        this.modify("mdepartment_id", mdepartmentId);
        return this;
    }

    /**
     * 设置 [主部门]
     */
    public SysPersonRequestDTO setMdepartmentName(String mdepartmentName) {
        this.mdepartmentName = mdepartmentName;
        this.modify("mdepartment_name", mdepartmentName);
        return this;
    }


}
